package future;

import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;

public class demo1 {
    public static void main(String[] args) {
        Thread t1 = new Thread(() -> {
            System.out.println(Thread.currentThread().getName() + "\t 开始运行," + ((Thread.currentThread().isDaemon()) ? "守护线程" : "用户线程"));
            // 用户进程的话就是不会消失的
            // 一直在进行，而守护进程则会停止，默默在后台运行的
            while (true) {

            }
        }, "t1");

        t1.start();
        // 在之后设置是不对的
        t1.setDaemon(true); // 变为守护进程

        // 暂停几秒钟线程
        try {
            TimeUnit.SECONDS.sleep(3);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        // jvm中没有用户线程了就会自动结束的
        System.out.println(Thread.currentThread().getName() + "\t ---- end 主线程");
    }

    /**
     * 这个无返回值
     */
    class MyThread implements Runnable {
        @Override
        public void run() {

        }
    }

    /**
     * 这个有返回值
     */
    class MyThread2 implements Callable<String> {
        @Override
        public String call() throws Exception {
            return null;
        }
    }


}
